.. :validated: 3.2.0

.. _join_computer_alt:

Ввод компьютера под управлением альтернативных ОС в домен
---------------------------------------------------------

В операционных системах **Альт Рабочая станция 10.4**, **Альт СП 10**, **РЕД ОС 7.3.5**, **РЕД ОС 8** ввод компьютера в домен выполняется одинаково.

При вводе компьютера в домен не производится дополнительных проверок на соответствие количеству приобретенных лицензий на управляемые устройства.

.. attention::

    При вводе в домен компьютера, на котором включен режим замкнутой программной среды, перед запуском скрипта ввода в домен необходимо выполнить перезагрузку компьютера.

Для успешного ввода компьютера в домен требуется соблюдение нескольких условий:

- компьютеру должно быть дано уникальное имя, которое еще не применено в домене;
- в качестве DNS-сервера должен быть указан IP-адрес контроллера домена;
- установлен пакет клиентского программного обеспечения ``aldpro-client``.

Проверить уникальность имени компьютера pc-1 в домене ald.company.lan можно командой ``nslookup``:

.. code-block:: bash

    nslookup pc-1

С помощью данной команды проверяется, что хост с указанным именем не найден на DNS-сервере. Команда проверит не только имя **pc-1**, но и **pc-1.ald.company.lan**, т.к. в настройках **NetworkManager** на предыдущем шаге указан DNS-суффикс **ald.company.lan**.

Ввод в домен в графическом режиме для альтернативных ОС
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Запуск утилиты ``aldpro-client-installer`` в графическом режиме осуществляется из меню **Пуск** → **Прочие** → **Ввод компьютера в домен ALD Pro**.

Или если запустить в терминале утилиту ``aldpro-client-installer`` без параметров, то появится окно для ввода необходимых параметров из графики.

.. code-block:: bash

    /opt/rbta/aldpro/client/bin/aldpro-client-installer

.. figure:: media/2.2.5_join_computer_alt.png
    :name: Графическая утилита для ввода компьютера в домен для альтернативных ОС
    :scale: 50

    Графическая утилита для ввода компьютера в домен для альтернативных ОС

В обоих случаях вызывается ``ipa-getkeytab``, которая устанавливает Kerberos-пароль для учетной записи компьютера, используя привилегированную учетную запись. В небольших компаниях для этого используют учетную запись ``admin`` или включают персональную учетную запись сотрудника в группу ``admins``, но это не подходит для крупных организаций с большим штатом ИТ специалистов, где эту задачу поручают сотрудникам, не имеющим отношения к администрированию серверной группировки. В этом случае рекомендуется делегировать сотрудникам только те права, которые действительно необходимы для выполнения поставленной задачи, что можно сделать через настройку прав доступа службы каталога. Для настройки прав доступа необходимо ознакомиться с подразделом :ref:`utility_aldpro_client_installer_alt`.

Ранее нужно было устанавливать имя узла до его ввода в домен, но в последних редакциях установщика этого не требуется, скрипт сам изменит ``hostname`` в системе:

.. code-block:: bash

    exec bash
    echo $HOSTNAME

Результат выполнения проверки:

.. code-block:: bash

    pc-1.ald.company.lan

Для применения всех настроек необходимо выполнить перезагрузку компьютера:

.. code-block:: bash

    sudo reboot

Необходимо заполнить все поля в графическом интерфейсе:

* **Наименование домена** — имя домена, которое выбрано на основе третьего уровня приобретённого домена, например, ``ald.company.lan``;
* **Учетная запись** — логин УЗ с правами на ввод в домен;
* **Хост** — имя компьютера в нижнем регистре;
* **Пароль** — пароль УЗ с правами на ввод в домен.

.. attention::

    Если установить чекбокс **Принудительный ввод в домен**, то будут пропущены все проверки безопасности, выполняемые утилитой.

    Ввод компьютера в домен будет продолжен, даже если в домене для его имени уже есть УЗ!

    **Не рекомендуется устанавливать чекбокс "Принудительный ввод в домен без необходимости", так как это может нарушить структуру домена и привести к нежелательным последствиям!**

Целесообразно устанавливать чекбокс в тех случаях, когда администратор переустанавливает ОС и хочет ввести компьютер в домен с тем же именем.

Далее нажать кнопку **Добавить в домен**.

После перезагрузки необходимо войти в систему, используя доменную учетную запись администратора с паролем из строки продвижения сервера:

* login: admin

* password: ****** (пароль администратора домена)

Для первого входа в систему доменной учетной записью требуется доступ к контроллеру домена. В дальнейшем аутентификация пользователя возможна через кэш ``sssd`` службы.

.. _one_time_password_graphical_mode_alternative:

Ввод в домен с помощью одноразового пароля для альтернативных ОС
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Чтобы при вводе компьютеров в домен уменьшить риск разглашения привилегированных учетных данных, в **ALD Pro** предусмотрена возможность ввода компьютера по одноразовому паролю.

Использование одноразовых паролей обладает несколькими преимуществами:

* Учетная запись хоста может быть создана сразу в правильном организационном подразделении, чтобы на него распространялось действие необходимых групповых политик;
* Учетную запись хоста можно сразу включить во все группы, чтобы на него распространялись необходимые правила HBAC и SUDO.
* Для ввода машины в домен на стороне рабочей станции не нужно будет использовать пароль привилегированной учетной записи.

Для присоединения компьютера к домену с помощью одноразового пароля в **ALD Pro** используется графическая утилита ``aldpro-client-installer``.

1. Необходимо создать учетную запись компьютера с помощью команды ``ipa host-add``, используя ключ ``--random`` для генерации одноразового пароля:

.. code-block:: bash

    kinit admin
    ipa host-add pc-2.ald.company.lan --random --ip-address=10.0.1.52 --force --department='ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan'

В результате выполнения получен одноразовый пароль, который необходимо сохранить для дальнейшего ввода компьютера в домен:

.. code-block:: bash

    kinit admin
    ipa host-add pc-2.ald.company.lan --random --ip-address=10.0.1.52 --force --department='ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan'
    ------------------------------------
    Добавлен узел "pc-2.ald.company.lan"
    ------------------------------------
        Имя узла: pc-2.ald.company.lan
        Случайный пароль: 2LyXwGJItweZbvJP3LLqFCT

где:

* ``pc-2.ald.company.lan`` – FQDN имя компьютера в нижнем регистре;
* ``--random`` – ключ, указывающий на требование сгенерировать случайный одноразовый пароль;
* ``--ip-address`` – адрес компьютера для создания DNS записи в домене;
* ``--force`` – ключ, позволяющий принудительно установить значение имени узла, даже если такое имя уже присутствует в DNS.

2. Настроить компьютер **pc-2**:

* Настроить IP-адрес: 10.0.1.52.
* Установить репозитории **ALSE**, **ALD Pro** и клиентское приложение в соотвествии с разделом :ref:`configuring_repositories`;
* Проверить отсутствие **pc-2** в домене ald.company.lan:

.. code-block:: bash

    ping pc-2
    ping: pc-2: Неизвестное имя или служба

3. Запустить графическую утилиту ввода в домен ``aldpro-client-installer``:

.. code-block:: bash

    sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer

4. Заполнить поля и выставить флаги:

* наименование домена: ``ald.company.lan``;
* поле **Учетная запись** оставить пустым;
* в поле **Хост**: pc-2;
* в поле **Пароль** вставить одноразовый пароль из пункта 1;
* обязательно поставить флаг **Ввод в домен по паролю компьютера**.

5. Запустить процесс ввода кнопкой **Добавить в домен**. Нажать **[Да]** для подтверждения ввода.

Ввод компьютера в домен выполнен.

Ввод в домен в режиме командной строки для альтернативных ОС
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Выполнить ввод компьютера **pc-1** можно с помощью команды:

.. code-block:: bash

    sudo /opt/rbta/aldpro/client/bin/aldpro-client-installer --domain ald.company.lan --account admin --host pc-1 --gui --orgunits "ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan"

После ввода команды система запросит ввести пароль администратора домена.

Параметры утилиты ``aldpro-client-installer``:

* ``--domain`` — имя домена, которое выбрано на основе третьего уровня приобретённого домена, например, ``ald.company.lan``;
* ``--account`` — логин администратора домена;
* ``--host`` — имя компьютера в нижнем регистре;
* ``--gui`` — использовать интерактивный режим;
* ``--orgunits`` — организационное подразделение в которое будет выполнен ввод. Если этот параметр не передан или подразделение не найдено (не существует), то ввод компьютера будет выполнен в корневое подразделение.

.. attention::

    Если применить ключ ``--force``, то будут пропущены все проверки безопасности, выполняемые утилитой.

    Ввод компьютера в домен будет продолжен, даже если в домене для его имени уже есть УЗ!

    **Не рекомендуется применять ключ без необходимости, так как это может нарушить структуру домена и привести к нежелательным последствиям!**

Целесообразно применять ключ для принудительного ввода в домен компьютера в тех случаях, когда администратор переустанавливает ОС и хочет ввести компьютер в домен с тем же именем.

Если применить ключ ``--password`` — пароль администратора домена должен быть передан в командной строке (небезопасно);

Описание параметров скрипта можно получить с помощью ключа -h. А также доступны короткие псевдонимы, например, вместо ``--domain`` можно указать ``-с``, но эти сокращения могут быть менее запоминающимися.

Для применения всех настроек необходимо выполнить перезагрузку компьютера:

.. code-block:: bash

    sudo reboot

После перезагрузки необходимо войти в систему, используя доменную учетную запись администратора с паролем из строки продвижения сервера:

* login: admin
* password: ****** (пароль администратора домена)

Для первого входа в систему доменной учетной записью требуется доступ к контроллеру домена. Дальнейшая аутентификация пользователя возможна через кэш SSSD службы.

.. _utility_aldpro_client_installer_alt:

Необходимые привилегии для ввода компьютера под управлением альтернативных ОС в домен с помощью утилиты aldpro-client-installer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Права доступа в службе каталога **FreeIPA** назначаются с помощью трехуровневой модели безопасности, которая включает в себя Роли (Roles), Привилегии (Privileges) и Разрешения (Permissions). На базовом уровне разрешениям соответствуют инструкции управления доступом **389 Directory Server (Access Control Instructions, ACI)**, с помощью которых можно предоставить доступ на чтение, запись, поиск и другие действия применительно ко всему каталогу, его ветке или конкретной записи. Разрешения группируются в привилегии, привилегии группируются в роли, а роли уже назначаются пользователям.

В домене **ALD Pro** уже есть роль ``Enrollment Administrator``, которая включает привилегию ``Host Enrollment``, объединяющую почти все необходимые разрешения за исключением права на создание хостов ``System: Add Hosts``, поэтому самым простым способом решения задачи делегирования является расширение списка разрешений и назначение роли ``Enrollment Administrator`` соответствующему пользователю.

.. code-block:: bash

    ipa privilege-add-permission 'Host Enrollment' --permissions='System: Add Hosts'
    ipa role-add-member 'Enrollment Administrator' --users=enrolladmin

При необходимости с помощью портала управления **ALD Pro** можно создать новую роль, например ``New Host Enrollment Administrator``. Созданную роль следует назначить на корневое подразделение. При создании установить чекбокс **Включая дочерние подразделения**. Участники роли получат привилегии для регистрации новых компьютеров в любом подразделении домена.

После того, как роль создана, необходимо включить в её состав привилегию **ALD Pro** (включая все связанные):

- ``Computers - Read``;

После этого необходимо создать привилегию **FreeIPA** с помощью команды: 

.. code-block:: bash

    ipa privilege-add 'New Host Enrollment' --desc='Привилегия для ввода новых хостов в домен'

Добавить в созданную привилегию **FreeIPA** следующие разрешения:

.. code-block:: bash

    ipa privilege-add-permission 'New Host Enrollment' \
    --permissions='System: Add Hosts' \
    --permissions='System: Add krbPrincipalName to a Host' \
    --permissions='System: Enroll a Host' \
    --permissions='System: Manage Host Certificates' \
    --permissions='System: Manage Host Enrollment Password' \
    --permissions='System: Manage Host Keytab' \
    --permissions='System: Manage Host Principals'

Добавить полученную  привилегию FreeIPA в состав созданной роли:

.. code-block:: bash

    ipa role-add-privilege 'New Host Enrollment Administrator' \
    --privileges='New Host Enrollment'

После выполнения указанных действий роль должна быть активирована на портале управления **ALD Pro**: Управление доменом → Роли и права доступа → Роли в системе. После назначения роли ``New Host Enrollment Administrator`` пользователь сможет вводить машины в домен, не получая при этом полных административных прав.